package com.business.redis.utils;

import java.lang.reflect.Field;

public class ObjectUtil {

    public static String getNotNullFieldToString(Object obj) throws IllegalAccessException {
        Field[] fields = obj.getClass().getDeclaredFields();
        StringBuilder stringBuilder = new StringBuilder();
        for (int i = 0, len = fields.length; i < len; i++) {
            // 对于每个属性，获取属性名
            String varName = fields[i].getName();
            // 获取原来的访问控制权限
            boolean accessFlag = fields[i].isAccessible();
            // 修改访问控制权限
            fields[i].setAccessible(true);
            // 获取在对象f中属性fields[i]对应的对象中的变量
            Object o;
            o = fields[i].get(obj);
            if (o != null) {
                stringBuilder.append("[").append(varName).append("=").append(o).append("]");
                System.err.println("传入的对象中包含一个如下的变量：" + varName + " = " + o);
            }
            // 恢复访问控制权限
            fields[i].setAccessible(accessFlag);
        }
        return stringBuilder.toString();
    }
}
